import type { Ref } from "vue";
import { ref } from "vue";

export interface UseBaseTable<T> {
    /** 表格加载状态 */
    tableLoading: Ref<boolean>;
    /** 表格数据 */
    tableData: Ref<T[]>;
    /** 分页信息 */
    tablePage: Ref<Page>;
}

export function useBaseTable<TableData extends Record<keyof any, any>>(): UseBaseTable<TableData> {
    /** 表格加载状态 */
    const tableLoading = ref(false);
    /** 表格数据 */
    const tableData = ref<TableData[]>([]);
    /** 分页信息 */
    const tablePage = ref({
        pageNum: 1,
        pageSize: 10,
        total: 0,
    });

    return {
        tableLoading,
        tableData,
        tablePage,
    };
}
